package com.pe.pgn.clubpgn.dao;

import java.util.List;

import com.pe.pgn.clubpgn.domain.ClpbClienteEmpresa;
import com.pe.pgn.clubpgn.domain.ClprClienteEstacion;
import com.pe.pgn.clubpgn.domain.beans.BNClienteEmpresa;

public interface ClienteEmpresaDao extends GenericDao<ClpbClienteEmpresa, Long>{

	public List<BNClienteEmpresa> obtenerClienteEmpresas(boolean esInicial);
	public void  guardarClienteEmpresa(ClpbClienteEmpresa clienteEmpresa);
	public void  guardarClienteEmpresaEstaciones(ClpbClienteEmpresa clienteEmpresa);
	public void  guardarClienteEmpresaTopes(ClpbClienteEmpresa clienteEmpresa);
	public void  eliminarTope(Long id);
	public BNClienteEmpresa obtenerClienteEmpresa(Long clienteEmpresaID, Long flotaID);
	public BNClienteEmpresa obtenerClienteEmpresaEstacion(Long id);
	public BNClienteEmpresa obtenerClienteEmpresaTope(Long id);
	public void eliminarClienteEmpresa(Long id);
	public List<BNClienteEmpresa> busquedaClientesPorFiltros(String deClienteEmpresa, String coRuc, Long lineaCreditoMinima, Long lineaCreditoMaxima, String coTipoLineaCredito,String habilitado);
	public List<BNClienteEmpresa> busquedaClientesWizzar(String deClienteEmpresa, String coRuc, String deAlias,String habilitado);
	public int validaRazonSocial(String deNombreCliente);
	public int validaRuc(String coRuc);
	public int validaAlias(String coAlias);
	public int validaRazonSocial(Long id,String deNombreCliente);
	public int validaRuc(Long id,String coRuc);
	public int validaAlias(Long id,String coAlias);	
	
	public ClprClienteEstacion obtenerClienteEstacion(Long id);
	public ClpbClienteEmpresa obtenerClienteEmpresaByID(Long id);
	public BNClienteEmpresa obtenerBNClienteEmpresaByID(Long clienteEmpresaID);
	public String verificarTopes(ClpbClienteEmpresa clienteEmpresa, SincronizacionFlotaDao sincronizacionFlotaDao);
	public void guardarClientesEmpresaEstacion(Long idEstacion, boolean stEstacion, boolean isNew);
	public void guardarClienteEmpresaPorLineaCredito(
			ClpbClienteEmpresa clienteEmpresa);
	public List<BNClienteEmpresa> obtenerClienteEmpresasConLineaCredito(boolean esInicial);
	public List<BNClienteEmpresa> busquedaClientesPorFiltrosConLineaCredito(
			String deClienteEmpresa, String coRuc, Long lineaCreditoMinima,
			Long lineaCreditoMaxima, String coTipoLineaCredito,
			String habilitado);
	
}
